The present invention relates generally to cache management and more particularly to cache management in a Remote Direct Memory Access (RDMA) data store.
In general, RDMA is a communication paradigm whereby data is fetched directly out of a host computer's memory and directly placed into the memory of a remote computer without requiring the processor of the host computer to process the read request. As a result, RDMA significantly reduces the load on the processor of the host computer for large data transfers by bypassing the operating system of the host computer and avoiding intermediate data copies in memory of the host computer. Accordingly, RDMA provides high throughput and low latency.
One drawback of using RDMA for cache data storage is that the host computer is not made aware of the accesses conducted by remote computers. Accordingly, it is not possible for the host computer to track how frequently each of the data items stored in the cache are accessed. This lack of information can lead to the host computer performing undesired evictions of data items from the cache if traditional cache management algorithms, e.g., LRU, CLOCK, are used. One solution to this problem would be for the remote computers to inform the host computer of all cache data accesses. However, this approach would generate a large number of messages that would need to be processed by the host computer and would significantly reduce the performance benefits of RDMA.
Accordingly, methods and systems for cache management in a RDMA data store are needed.